﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lesson6 : MonoBehaviour
{
    public Transform target;
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        #region 补充知识 调试画线
        //画线段
        //向自己的面朝向画一条红色的线(参数：起点，终点，线条颜色)
        //Debug.DrawLine(this.transform.position, this.transform.position + this.transform.forward, Color.red);
        //画射线
        //Debug.DrawRay(this.transform.position, this.transform.up, Color.white);
        #endregion

        #region 知识点一 通过点乘判断对象方位
        //Vector3 提供了计算点乘的方法
        Debug.DrawRay(this.transform.position, this.transform.forward, Color.red);
        Debug.DrawRay(this.transform.position, target.position - this.transform.position, Color.red);

        //得到两个向量的点乘结果
        //向量 a 点乘 AB 的结果
        //float dotResult = Vector3.Dot(this.transform.forward, target.position - this.transform.position);
        //if (dotResult >= 0)
        //{
        //    Debug.LogFormat("它在我前方 dotResult:{0}", dotResult);
        //}
        //else
        //{
        //    Debug.LogFormat("它在我后方 dotResult:{0}", dotResult);
        //}
        #endregion

        #region 知识点二 通过点乘推导公式算出夹角
        //步骤
        //1.用单位向量算出点乘结果
        float dotResult = Vector3.Dot(this.transform.forward, (target.position - this.transform.position).normalized);
        //2.用反三角函数得出角度
        Debug.LogFormat("角度:{0}", Mathf.Acos(dotResult) * Mathf.Rad2Deg);
        //Vector3中提供了 得到两个向量之间夹角的方法
        Debug.LogFormat("角度2:{0}", Vector3.Angle(this.transform.forward, target.position-this.transform.position));
        #endregion
    }
}
